Golang Job: Software Engineer, Document Databases

Job added on

Company

Stripe

Location

Seattle, Washington - United States of America

Job type

Full-Time

Golang Job Details

Who we are
About Stripe

Stripe is a financial infrastructure platform for businesses. Millions of companies-from the world's largest enterprises to the most ambitious startups-use Stripe to accept payments, grow their revenue, and accelerate new business opportunities. Our mission is to increase the GDP of the internet, and we have a staggering amount of work ahead. That means you have an unprecedented opportunity to put the global economy within everyone's reach while doing the most important work of your career.
About the team

As part of the Document Databases team, we provide a tier-0 real-time database infrastructure based on MongoDB to enable all of Stripe's infrastructure. We store nearly all of Stripe's online data and have strict requirements for security, durability, availability, latency, and scalability. We have a huge responsibility as we contribute to Stripe's overall user experience.

Our mission is to provide a simple, secure, reliable, scalable, and performant document database as a service to enable teams at Stripe. We run a massive fleet of databases and a large-scale distributed system to manage the fleet. We are growing very fast which is challenging us to rethink our assumptions.
What you'll do

We are building the next generation of document-based database infrastructure to enable the next phase of Stripe's growth. We are looking for motivated engineers who thrive at solving hard problems in distributed systems and databases. The ideal candidate is excited about database technology, eager to solve challenging distributed systems problems, and to partner with other Stripe engineering teams to establish empathy and understand their use-cases. This is a great opportunity to have tremendous impact across Stripe.
Responsibilities
  • Design, build, and maintain the core database infrastructure used by all of Stripe's engineering teams
  • Solve complicated problems that only exist at very high scale
  • Debug production issues across services and levels of the stack
  • Plan for the growth of Stripe's database platform infrastructure
  • Develop tooling and automate processes to provide a resilient and flexible platform for other engineers
  • Build a great customer experience for people using your infrastructure
  • To get a concrete idea of what projects you might work on here, see the "Projects you could work on" section
Projects You Could Work On

We have a ton of important work to do, which is why we're hiring! Our projects are of course changing all the time, but here are a few projects either that we've done in the past or are upcoming, so you can get an idea of the types of work we do. Technologies we use include: Golang, Ruby, Java, MongoDB and others.
  • Design and build a comprehensive live data migration solution to allow data reorganization at MongoDB, achieving better reliability, scalability and cost-efficiency, and enabling new use cases.
  • Design and build the vertical and horizontal scaling solutions for MongoDB to empower Stripe and its customers' ever growing business needs.
  • Design and build data routing and placement strategies and infrastructure to eliminate scalability bottlenecks and reduce reliability blast radius of MongoDB.
Who you are

We're looking for someone who meets the minimum requirements to be considered for the role. If you meet these requirements, you are encouraged to apply. The preferred qualifications are a bonus, not a requirement.
Minimum requirements
  • 1.5+ years of full-time professional experience in a software development role.
  • Experience in independently developing and driving mid-size projects.
  • Are able to write high quality code in a programming language (e.g. Ruby, Scala, Go, Java)
  • Experience with operational excellence and a deep understanding of metrics, alarms and dashboard
  • Experience in developing, maintaining and debugging distributed systems.
Preferred qualifications
  • Thinks in systems: their edge cases, failure modes, and life cycles
  • Knows their way around a Unix shell
  • Can debug complex problems in a distributed system
  • Focuses on the needs of our users, both internal and external
  • Holds yourself and others to a high bar when working with production
  • Experience with MongoDB or document-based databases

Hybrid work at Stripe

This role is available either in an office or a remote location (typically, 35+ miles or 56+ km from a Stripe office).

Office-assigned Stripes spend at least 50% of the time in a given month in their local office or with users. This hits a balance between bringing people together for in-person collaboration and learning from each other, while supporting flexibility about how to do this in a way that makes sense for individuals and their teams.

A remote location, in most cases, is defined as being 35 miles (56 kilometers) or more from one of our offices. While you would be welcome to come into the office for team/business meetings, on-sites, meet-ups, and events, our expectation is you would regularly work from home rather than a Stripe office. Stripe does not cover the cost of relocating to a remote location. We encourage you to apply for roles that match the location where you currently or plan to live.